summaryrefslogtreecommitdiff
path: root/app/api/data-room/[projectId]/share/[token]
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-09-25 03:28:27 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-09-25 03:28:27 +0000
commit4c2d4c235bd80368e31cae9c375e9a585f6a6844 (patch)
tree7fd1847e1e30ef2052281453bfb7a1c45ac6627a /app/api/data-room/[projectId]/share/[token]
parentf69e125f1a0b47bbc22e2784208bf829bcdd24f8 (diff)
(대표님) archiver 추가, 데이터룸구현
Diffstat (limited to 'app/api/data-room/[projectId]/share/[token]')
-rw-r--r--app/api/data-room/[projectId]/share/[token]/route.ts45
1 files changed, 45 insertions, 0 deletions
diff --git a/app/api/data-room/[projectId]/share/[token]/route.ts b/app/api/data-room/[projectId]/share/[token]/route.ts
new file mode 100644
index 00000000..51582bca
--- /dev/null
+++ b/app/api/data-room/[projectId]/share/[token]/route.ts
@@ -0,0 +1,45 @@
+// app/api/shared/[token]/route.ts
+import { NextRequest, NextResponse } from 'next/server';
+import { FileService } from '@/lib/services/fileService';
+
+// 공유 링크로 파일 접근
+export async function GET(
+ request: NextRequest,
+ { params }: { params: { token: string } }
+) {
+ try {
+ const searchParams = request.nextUrl.searchParams;
+ const password = searchParams.get('password');
+
+ const fileService = new FileService();
+ const result = await fileService.accessFileByShareToken(
+ params.token,
+ password || undefined
+ );
+
+ if (!result) {
+ return NextResponse.json(
+ { error: '유효하지 않은 공유 링크입니다' },
+ { status: 404 }
+ );
+ }
+
+ return NextResponse.json({
+ file: result.file,
+ accessLevel: result.accessLevel,
+ });
+ } catch (error) {
+ if (error instanceof Error) {
+ return NextResponse.json(
+ { error: error.message },
+ { status: 400 }
+ );
+ }
+
+ console.error('공유 파일 접근 오류:', error);
+ return NextResponse.json(
+ { error: '파일 접근에 실패했습니다' },
+ { status: 500 }
+ );
+ }
+}